1. User & Authentication APIs
💻 Web Portal
POST Tenant Web Panel Login
URL: https://fiesta.nearle.app/live/api/v1/web/users/tenant/weblogin
Payload:
json


{
  "authname": "merchant_admin_01",
  "password": "PasswordSecurityHash99!"
}
POST General Application Login
URL: https://fiesta.nearle.app/live/api/v1/web/users/applogin
Payload:
json


{
  "authname": "system_operator",
  "password": "OperatorSafePasswordSecret",
  "deviceid": "device_uuid_8828b",
  "devicetype": "android"
}
POST Register New Web Staff Account
URL: https://fiesta.nearle.app/live/api/v1/web/users/create
Payload:
json


{
  "authname": "tenant_staff_steve",
  "firstname": "Steve",
  "lastname": "Rogers",
  "password": "SteveSecurePassword12",
  "email": "steve.rogers@merchant.com",
  "dialcode": "+61",
  "contactno": "412345678",
  "roleid": 3,
  "pin": 1234,
  "address": "100 Flinders St",
  "suburb": "Melbourne",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3000",
  "tenantid": 8,
  "locationid": 2,
  "applocationid": 1,
  "status": "active"
}
PUT Update Web Staff User Details
URL: https://fiesta.nearle.app/live/api/v1/web/users/update
Payload:
json


{
  "userid": 15,
  "firstname": "Steve",
  "lastname": "Captain",
  "email": "steve.captain@merchant.com",
  "contactno": "412345678",
  "address": "200 Flinders St",
  "suburb": "Melbourne",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3000",
  "status": "active"
}
📱 Mobile App
POST Rider/Merchant Mobile App Login
URL: https://fiesta.nearle.app/live/api/v1/mob/users/tenant/login
Payload:
json


{
  "authname": "rider_john_01",
  "password": "RiderSecretKey"
}
POST Create Mobile Staff User
URL: https://fiesta.nearle.app/live/api/v1/mob/users/create
Payload: (Uses the same schema as Web Register New Web Staff Account)
PUT Update Mobile Staff Details
URL: https://fiesta.nearle.app/live/api/v1/mob/users/update
Payload: (Uses the same schema as Web Update Web Staff User Details)
2. Customer Management APIs
📱 Mobile App
POST Passwordless OTP Login (via Phone)
URL: https://fiesta.nearle.app/live/api/v1/mob/customers/login
Payload:
json


{
  "contactno": "0499888777"
}
POST Register Customer Account
URL: https://fiesta.nearle.app/live/api/v1/mob/customers/create
Payload:
json


{
  "firstname": "Jane",
  "lastname": "Smith",
  "profileimage": "https://storage.nearle.app/avatars/jane_smith.jpg",
  "gender": "Female",
  "dob": "1994-11-20",
  "dialcode": "+61",
  "contactno": "499888777",
  "email": "jane.smith@gmail.com",
  "deviceid": "uuid_7728b991a",
  "devicetype": "ios",
  "authmode": 1,
  "customertoken": "fcm_token_device_hash_xyz",
  "address": "456 Oak Avenue",
  "suburb": "Richmond",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3121",
  "latitude": "-37.8212",
  "longitude": "144.9984",
  "applocationid": 1,
  "status": 1,
  "intro": "Regular subscriber of organic morning deliveries."
}
POST Save New Geofenced Location Address
URL: https://fiesta.nearle.app/live/api/v1/mob/customers/createlocations
Payload:
json


{
  "customerid": 4082,
  "address": "123 High Street",
  "suburb": "Prahran",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3181",
  "latitude": "-37.8502",
  "longitude": "144.9924",
  "primaryaddress": 1,
  "status": 1
}
POST Log Customer Support Ticket Request
URL: https://fiesta.nearle.app/live/api/v1/mob/customers/createcustomerrequest
Payload:
json


{
  "customerid": 4082,
  "tenantid": 8,
  "apptypeid": 1,
  "locationid": 2,
  "subject": "Delay in Morning Milk Delivery",
  "remarks": "Order scheduled for 7:00 AM hasn't arrived.",
  "status": 1
}
PUT Update Customer Profile Details
URL: https://fiesta.nearle.app/live/api/v1/mob/customers/update
Payload:
json


{
  "customerid": 4082,
  "firstname": "Jane",
  "lastname": "Miller",
  "email": "jane.miller@gmail.com",
  "contactno": "499888777",
  "address": "789 Pine Road",
  "suburb": "Hawthorn",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3122",
  "status": 1
}
3. Catalog & Product Inventory APIs
💻 Web Portal
POST Add Multi-Product Stock Entry
URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductstock
Payload:
json


[
  {
    "tenantid": 8,
    "locationid": 2,
    "productid": 105,
    "quantity": 150,
    "stocktype": "credit",
    "status": "active"
  },
  {
    "tenantid": 8,
    "locationid": 2,
    "productid": 109,
    "quantity": 80,
    "stocktype": "credit",
    "status": "active"
  }
]
POST Create Master Product Catalog Item
URL: https://fiesta.nearle.app/live/api/v1/web/products/create
Payload:
json


{
  "applocationid": 1,
  "tenantid": 8,
  "categoryid": 2,
  "subcategoryid": 12,
  "productname": "Fresh Cow Milk 1L",
  "productimage": "https://storage.nearle.app/products/cow_milk_1l.png",
  "productdesc": "Pure farm fresh cow milk pasteurized.",
  "productsku": "MILK-COW-1L",
  "productunit": "Litre",
  "unitvalue": "1",
  "productcost": 1.80,
  "retailprice": 3.50,
  "taxpercent": 5.00,
  "productstock": 100,
  "productstatus": "available",
  "approve": 1
}
POST Map Product to Specific Outlet Location
URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductlocation
Payload:
json


[
  {
    "tenantid": 8,
    "locationid": 2,
    "productid": 105,
    "catlougeid": 1,
    "minquantity": 5,
    "maxquantity": 200,
    "price": 3.75,
    "status": "Active"
  }
]
POST Create Product Variant Metadata
URL: https://fiesta.nearle.app/live/api/v1/web/products/createproductvariant
Payload:
json


{
  "tenantid": 8,
  "variantname": "1.5 Liters Bottle",
  "categoryid": 2,
  "subcategoryid": 12,
  "status": "active"
}
PUT Update Master Product Details
URL: https://fiesta.nearle.app/live/api/v1/web/products/update
Payload:
json


{
  "productid": 105,
  "productname": "Organic Farm Cow Milk 1L",
  "productcost": 1.95,
  "retailprice": 3.75,
  "productstock": 120,
  "productstatus": "available"
}
PUT Update Product Outlet Constraints
URL: https://fiesta.nearle.app/live/api/v1/web/products/updateproductlocation
Payload:
json


{
  "productlocationid": 25,
  "tenantid": 8,
  "locationid": 2,
  "productid": 105,
  "minquantity": 10,
  "maxquantity": 150,
  "price": 3.99,
  "status": "Active"
}
DELETE Purge Master Product Catalog Entry
URL: https://fiesta.nearle.app/live/api/v1/web/products/delete?productid=105
Parameters:
productid (int, required): Unique ID of the catalog item to be purged.
📱 Mobile App
PUT Mobile Update Product Details
URL: https://fiesta.nearle.app/live/api/v1/mob/products/update
Payload: (Uses the same schema as Web Update Master Product Details)
PUT Mobile Update Product Outlet Config
URL: https://fiesta.nearle.app/live/api/v1/mob/products/updateproductlocation
Payload: (Uses the same schema as Web Update Product Outlet Constraints)
4. Order Orchestration APIs
💻 Web Portal
POST Create New Web Order (Flat JSON Format)
URL: https://fiesta.nearle.app/live/api/v1/web/orders/createorder
Payload:
json


{
  "tenantid": 8,
  "locationid": 2,
  "applocationid": 1,
  "moduleid": 1,
  "customerid": 4082,
  "orderstatus": "pending",
  "deliverytype": "standard",
  "deliverytime": "2026-05-20 18:00:00",
  "pickupaddress": "Shop 4, Central Plaza, Melbourne",
  "pickuplat": "-37.8136",
  "pickuplong": "144.9631",
  "pickupcustomer": "Central Plaza Merchant",
  "pickupcontactno": "399887766",
  "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond",
  "deliverylat": "-37.8212",
  "deliverylong": "144.9984",
  "orderamount": 11.48,
  "taxamount": 1.10,
  "ordervalue": 12.58,
  "itemcount": 2,
  "paymenttype": 1,
  "paymentstatus": 0,
  "deliverycharge": 3.00,
  "ordernotes": "Please ring doorbell twice.",
  "items": [
    {
      "productid": 105,
      "productname": "Organic Whole Milk 1L",
      "orderqty": 2,
      "price": 3.99,
      "taxpercentage": 10.00,
      "taxamount": 0.80,
      "productsumprice": 7.98
    },
    {
      "productid": 109,
      "productname": "Salted Butter 250g",
      "orderqty": 1,
      "price": 3.50,
      "taxpercentage": 10.00,
      "taxamount": 0.35,
      "productsumprice": 3.50
    }
  ]
}
PUT Update Order Status & Financial Flag
URL: https://fiesta.nearle.app/live/api/v1/web/orders/updateorder
Payload:
json


{
  "orderheaderid": 2099,
  "orderstatus": "ready",
  "paymentstatus": 1,
  "remarks": "Order packed and waiting for rider assignment."
}
📱 Mobile App
POST Create Mobile Order (Wrapped JSON Format)
URL: https://fiesta.nearle.app/live/api/v1/mob/orders/createorder
Payload:
json


{
  "orders": {
    "tenantid": 8,
    "locationid": 2,
    "applocationid": 1,
    "moduleid": 1,
    "customerid": 4082,
    "orderstatus": "pending",
    "deliverytype": "standard",
    "deliverytime": "2026-05-20 18:00:00",
    "pickupaddress": "Shop 4, Central Plaza, Melbourne",
    "pickuplat": "-37.8136",
    "pickuplong": "144.9631",
    "pickupcustomer": "Central Plaza Merchant",
    "pickupcontactno": "399887766",
    "deliveryaddress": "Apt 4B, Sunset Boulevard, Richmond",
    "deliverylat": "-37.8212",
    "deliverylong": "144.9984",
    "orderamount": 11.48,
    "taxamount": 1.10,
    "ordervalue": 12.58,
    "itemcount": 2,
    "paymenttype": 1,
    "paymentstatus": 0,
    "deliverycharge": 3.00,
    "ordernotes": "Leave in parcel locker.",
    "items": [
      {
        "productid": 105,
        "productname": "Organic Whole Milk 1L",
        "orderqty": 2,
        "price": 3.99,
        "taxpercentage": 10.00,
        "taxamount": 0.80,
        "productsumprice": 7.98
      },
      {
        "productid": 109,
        "productname": "Salted Butter 250g",
        "orderqty": 1,
        "price": 3.50,
        "taxpercentage": 10.00,
        "taxamount": 0.35,
        "productsumprice": 3.50
      }
    ]
  }
}
PUT Mobile Update Order Status
URL: https://fiesta.nearle.app/live/api/v1/mob/orders/updateorder
Payload: (Uses the same schema as Web Update Order Status & Financial Flag)
5. Delivery & Rider Logistics APIs
💻 Web Portal
POST Initialize Logistics Delivery Dispatch (Assign Rider)
URL: https://fiesta.nearle.app/live/api/v1/web/deliveries/createdeliveries
Payload:
json


[
  {
    "orderheaderid": 2100,
    "applocationid": 1,
    "partnerid": 1,
    "tenantid": 8,
    "moduleid": 1,
    "locationid": 2,
    "userid": 15,
    "orderid": "ORD-19028-4",
    "deliverydate": "2026-05-20",
    "orderstatus": "assigned",
    "assigntime": "2026-05-20 12:10:00",
    "itemcount": 2,
    "orderamount": 12.58,
    "customerid": 4082,
    "pickupcustomer": "Central Merchant Warehouse",
    "pickupcontactno": "987654321",
    "pickuplocationid": 2,
    "pickupaddress": "Shop 4, Central Plaza, Melbourne",
    "pickuplat": "-37.8136",
    "pickuplon": "144.9631",
    "deliverycustomerid": 4082,
    "deliverylocationid": 554,
    "deliverycustomer": "Jane Smith",
    "deliverycontactno": "499888777",
    "deliveryaddress": "456 Oak Avenue, Richmond, VIC, 3121",
    "droplat": "-37.8212",
    "droplon": "144.9984",
    "deliverycharges": 3.00,
    "deliveryamt": 15.58,
    "deliverytype": "standard",
    "paymenttype": 1
  }
]
PUT Update Rider Pickup Status
URL: https://fiesta.nearle.app/live/api/v1/web/deliveries/updatedelivery
Payload:
json


{
  "deliveryid": 8871,
  "orderheaderid": 2100,
  "userid": 15,
  "orderstatus": "picked",
  "pickuptime": "2026-05-20 12:20:00",
  "riderslat": "-37.8140",
  "riderslon": "144.9640"
}
📱 Mobile App
POST Initialize Mobile Logistics Delivery
URL: https://fiesta.nearle.app/live/api/v1/mob/deliveries/createdeliveries
Payload: (Uses the same schema as Web Initialize Logistics Delivery Dispatch)
PUT Rider Update Dispatch Status (Delivered & GPS Tracking)
URL: https://fiesta.nearle.app/live/api/v1/mob/deliveries/updatedelivery
Payload:
json


{
  "deliveryid": 8871,
  "orderheaderid": 2100,
  "userid": 15,
  "orderstatus": "delivered",
  "deliverytime": "2026-05-20 12:45:00",
  "riderslat": "-37.8210",
  "riderslon": "144.9980",
  "actualkms": "4.2",
  "feedback": "Handed over safely.",
  "smsdelivery": 1
}
6. Tenant & Location Configuration APIs
💻 Web Portal
POST Link Customer Profile to Tenant Store
URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createtenantcustomer
Payload:
json


{
  "moduleid": 1,
  "tenantid": 8,
  "locationid": 2,
  "customerid": 4082,
  "customerlocationid": 554,
  "status": 1
}
POST Create New Geofenced Store Location
URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createlocation
Payload:
json


{
  "tenantid": 8,
  "applocationid": 1,
  "moduleid": 1,
  "locationname": "Hawthorn Daily Fresh Store",
  "email": "hawthorn.store@merchant.com",
  "contactno": "399443322",
  "latitude": "-37.8222",
  "longitude": "145.0384",
  "address": "12 Glenferrie Rd",
  "suburb": "Hawthorn",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3122",
  "opentime": "07:00:00",
  "closetime": "22:00:00",
  "partnerid": 1,
  "deliveryradius": 5000,
  "deliverymins": 30,
  "cancelsecs": 60,
  "status": "Active"
}
POST Map Tenant Location Linkage Entry
URL: https://fiesta.nearle.app/live/api/v1/web/tenants/createtenantlocation
Payload: (Uses the same schema as Create New Geofenced Store Location)
PUT Update Store Location Configurations
URL: https://fiesta.nearle.app/live/api/v1/web/tenants/updatelocation
Payload:
json


{
  "locationid": 2,
  "tenantid": 8,
  "applocationid": 1,
  "locationname": "Richmond Daily Fresh Store",
  "email": "richmond.store@merchant.com",
  "contactno": "399887766",
  "latitude": "-37.8212",
  "longitude": "144.9984",
  "address": "Shop 4, 100 Church St",
  "suburb": "Richmond",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3121",
  "opentime": "07:00:00",
  "closetime": "22:00:00",
  "deliveryradius": 8000,
  "deliverymins": 45,
  "cancelsecs": 120,
  "status": "Active"
}
PUT Modify Tenant Location Linkage Config
URL: https://fiesta.nearle.app/live/api/v1/web/tenants/updatetenantlocation
Payload: (Uses the same schema as Update Store Location Configurations)
📱 Mobile App
POST Mobile Link Customer Profile to Tenant Store
URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createtenantcustomer
Payload: (Uses the same schema as Web Link Customer Profile to Tenant Store)
POST Mobile Create Geofenced Store Location
URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createlocation
Payload: (Uses the same schema as Web Create New Geofenced Store Location)
POST Onboard/Create New Staff Member Account
URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createstaff
Payload: (Uses the same schema as Web Register New Web Staff Account)
POST Onboard New Tenant & Admin Profile (Joint Creation)
URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/createtenantuser
Payload:
json


{
  "tenantname": "Fresh Organic Greens",
  "configid": 1,
  "partnerid": 1,
  "moduleid": 1,
  "tenanttype": "Enterprise",
  "registrationno": "ABN-19028-299",
  "tenanttoken": "tenant_fcm_token_hash_value_xyz",
  "companyname": "Fresh Organic Greens Pty Ltd",
  "devicetype": "web",
  "firstname": "Arthur",
  "primaryemail": "arthur@organicgreens.com",
  "primarycontact": "488999000",
  "categoryid": 2,
  "subcategoryid": 12,
  "address": "400 Chapel St",
  "suburb": "South Yarra",
  "city": "Melbourne",
  "state": "VIC",
  "postcode": "3141",
  "latitude": "-37.8398",
  "longitude": "144.9953",
  "tenantimage": "https://storage.nearle.app/tenants/organic_greens.png",
  "tenantinfo": "Direct farm-to-table organic vegetables delivery provider.",
  "paymode1": 1,
  "paymode2": 1,
  "promotion": 0,
  "minorder": 15,
  "applocationid": 1,
  "approved": 1,
  "status": "Active",
  "tenantlocations": {
    "locationname": "South Yarra Main Warehouse",
    "email": "southyarra@organicgreens.com",
    "contactno": "488999000",
    "latitude": "-37.8398",
    "longitude": "144.9953",
    "address": "400 Chapel St",
    "suburb": "South Yarra",
    "city": "Melbourne",
    "state": "VIC",
    "postcode": "3141",
    "opentime": "06:00:00",
    "closetime": "21:00:00",
    "partnerid": 1,
    "deliveryradius": 6000,
    "deliverymins": 30,
    "cancelsecs": 90,
    "status": "Active"
  }
}
PUT Mobile Update Store Location Configurations
URL: https://fiesta.nearle.app/live/api/v1/mob/tenants/updatelocation
Payload: (Uses the same schema as Web Update Store Location Configurations)
